#include "bubble_sort.h"

namespace algo
{


void bubble_sort(vector<int> &vctNums)
{
	if (vctNums.size() <= 1)
	{
		return ;
	}

	for (int i = 0; i < vctNums.size(); ++i)
	{
		bool bSwapFlag = false;
		for(int j = 1; j < vctNums.size()-i; ++j)
		{
			if (vctNums[j] < vctNums[j-1])
			{
				swap(vctNums[j], vctNums[j-1]);
				bSwapFlag = true;
			}
		}

		// no swap just early exit
		if (!bSwapFlag)
		{
			break;
		}
	}
	return ;
}

}
